package com.yinxin.wudasuanfa.huaweiod;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author yinxin
 * @version 1.0
 * @Description: N输入的数的个数，iny[] arr存储数字的数组,求出能被一个组中最小数整除的数组个数。
 * @date 2022/4/2713:49
 */
public class Exercise3 {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int N = sc.nextInt();
      //存储输入数字的数组
      int[] arr = new int[N];
      for (int i = 0; i < N; i++) {
          arr[i]=sc.nextInt();
      }
      //找出arr中最小数,记录最少需要的颜色数量
      Arrays.sort(arr);
      int count=0;
      int[] s=new int[N];
      for (int i = 0; i < N; i++) {
         //遍历到了N位数组
         if(s[i]>0){
            //要是这个位置的数字被除过了就跳出这次即这个数字的循环
            continue;
         }else {
            for (int j = i; j < N; j++) {
               if(arr[j]%arr[i]==0){
                  //记录第j位数字加一表示这个位置的数组相应的数字被除过了
                  s[j]++;
               }
            }
         }
         count++;
      }
      System.out.println(count);

   }
   //遍历数组找出数组中最小数的倍数并返回去除最小值及其倍数的结果和递归次数
//   public static void dropInt(int[] arr,int count){
//      count++;
//      int min=arr[0];
//      for (int i = 0; i < arr.length; i++) {
//         if(arr[i]<min){
//            min=arr[i];
//         }
//      }
//      List<Integer> endList = new ArrayList<>();
//      for (int i : arr) {
//         if(i%min!=0){
//            endList.add(i);
//         }
//      }
//      int[] endArr = new int[endList.size()];
//      for (int i = 0; i < endList.size(); i++) {
//         endArr[i]=endList.get(i);
//      }
//      if(endArr.length!=0){
//         dropInt(endArr,count);
//      }
//   }

}
